/**
 * 工具函数
 * 大琳子
 */

// 引入字体图标
require('../../font/iconfont.css')

//服务器地址
let BASE_URL = "http://139.9.177.51:8099";

// 验证手机号
function phoneNum(pNumber) {
    return /^1[3-9]\d{9}$/.test(pNumber)
}

// 验证密码
function pwdNum(pwdNumber) {
    return /^[a-zA-Z]\w{5,11}$/.test(pwdNumber)
}
 
// 补0函数 
function padZero(n) {
    return n < 10 ? "0" + n : n;
}

// 正计时
function secondToHMS(a) {
    let h = Math.floor(a / 60 / 60)  //时
    let m = Math.floor(a / 60 % 60)  //分
    let s = Math.floor(a % 60)       //秒
    return [h, m, s].map(function (v) {
        // 补0
        return padZero(v)
    }).join(':')
}

// 提示框
function showToast(icon = 'icon-check', msg = '操作成功') {
    // 1 创建div
    let div = document.createElement("div");
    // 2 设置类名
    div.className = "toast";
    // 3 设置内容
    div.innerHTML =
        `
    <span class = 'iconfont ${icon}'></span>
    <p>${msg}</p>   
    `
    //4 添加到页面
    document.body.append(div);
    //5 延时器
    window.setTimeout(function () {
        //删除自己
        div.remove();
    }, 2000)
}

// 底部导航栏
function footerNavBar(page) {
    // 1.创建div
    let div = document.createElement('div')
    // 2.添加类名
    div.className = 'footer-nav-bar dpflex'
    // 3.添加内容
    div.innerHTML = `
                    <a href="index.html" class="nav-link ${page === "index" ? 'on' : ''}">
                        <i class='iconfont icon-home'></i>
                        <p class='nav-text'>首页</p>
                    </a>
                    <a href="sports.html" class="nav-link ${page === "sports" ? 'on' : ''}">
                        <i class='iconfont icon-sports'></i>
                        <p class='nav-text'>运动</p>
                    </a>
                    <a href="my.html" class="nav-link ${page === "my" ? 'on' : ''}">
                        <i class='iconfont icon-my'></i>
                        <p class='nav-text'>我的</p>
                    </a>
                     `
    // 4.添加到页面
    document.querySelector('#footer').appendChild(div);
}

// 运动中的头部导航栏
function sportsTopNav(navName) {
    // 1.创建div
    let div = document.createElement('div')
    // 2.添加类名
    div.className = 'sports-top dpflex'
    // 3.添加内容
    div.innerHTML = `
                    <p><a href="sports.html" class="sports-link ${navName === "sports" ? 'active' : ''}">跑步</a></p>
                    <p><a href="ride.html" class="sports-link ${navName === "ride" ? 'active' : ''}">骑行</a></p>
                    <p><a href="course.html" class="sports-link ${navName === "course" ? 'active' : ''}">课程训练</a></p>
                    `
    // 4.添加到页面
    document.querySelector('#sportsTop').appendChild(div);
}

 // 处理日期格式 
function forDate(strDate) {
    const now = new Date(strDate);
    let y = now.getFullYear();
    let m = now.getMonth() + 1;
    let d = now.getDate();
    console.log([y, m, d]);
    return [y, m, d].map((v)=>{
        return padZero(v) 
    }).join("-");
}

// 根据经纬度计算距离  startPoint:起点   curPoint:终点
function calcDistance(startPoint, curPoint) {
    let lat1 = startPoint.lat
    let lng1 = startPoint.lng

    let lat2 = curPoint.lat
    let lng2 = curPoint.lng

    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    return s.toFixed(2) // 单位千米
}

// 计算配速函数   d:距离  s:时间
function calcPace(d, s) {
    let distance = d
    let spendTime = s / 60
    if (distance > 0 && spendTime > 0) {
        let pace = parseFloat(spendTime / distance)
        let m = Math.floor(pace)
        let s = ((pace - m) * 60).toFixed(0)
        return `${m}'${s}"`
    }
    return "--"
}

// 计算卡路里 
function calCalorie(miles) {
    if (miles > 0) {
        let calorie = 60 * miles * 1.036;
        return calorie.toFixed(2)
    }
    return "--"
}

// 获取当前日期
function getNowDate(separator) {
    const now = new Date();
    let y = now.getFullYear();
    let m = now.getMonth() + 1;
    let d = now.getDate();
    // console.log([y, m, d]);
    return [y, m, d].map((v)=>{
        return padZero(v) 
    }).join(separator);
}






// 把函数暴露出去
window.$utils = {
    showToast,
    padZero,
    secondToHMS,
    phoneNum,
    pwdNum,
    BASE_URL,
    footerNavBar,
    sportsTopNav,
    forDate,
    calcDistance,
    calcPace,
    calCalorie,
    getNowDate,

}
